﻿using System;
using System.Collections.Generic;

namespace CSLua
{
	// Token: 0x0200001F RID: 31
	public static class BuildConfig
	{
		// Token: 0x04000073 RID: 115
		public static bool onlyBuildOutTypes = false;

		// Token: 0x04000074 RID: 116
		public static string onlyTestAttribute = null;

		// Token: 0x04000075 RID: 117
		public static bool commentILExpression = false;

		// Token: 0x04000076 RID: 118
		public static bool commontILAst = false;

		// Token: 0x04000077 RID: 119
		public static HashSet<string> skipAttributes = new HashSet<string>
		{
			"Stub.NativeAttribute",
			"Stub.Point",
		};

		// Token: 0x04000078 RID: 120
		public static string outAttribute = "Lua.OutAttribute";

		// Token: 0x04000079 RID: 121
		public static string ScriptImplAttribute = "Lua.ScriptImplAttribute";

		// Token: 0x0400007A RID: 122
		public static string LuaArgsType = "LuaArgs";

		// Token: 0x0400007B RID: 123
		public static bool luaModelWithNamespace = true;

		// Token: 0x0400007C RID: 124
		public static string nativeAttribute { get; set; } = "Stub.NativeAttribute";

		// Token: 0x0400007D RID: 125
		public static string cloneAttribute = "Lua.CloneableAttribute";

		// Token: 0x0400007E RID: 126
		public static string unvirtualAttribute = "Lua.UnvirtualAttribute";

		// Token: 0x0400007F RID: 127
		public static string genericParamAttribute = "Lua.GenericParamAttribute";

		// Token: 0x04000080 RID: 128
		public static string BindAttribute = "BindAttribute";

		// Token: 0x04000081 RID: 129
		public static string HeadAttribute = "HeadAttribute";

		// Token: 0x04000082 RID: 130
		public static string ImplicitAttribute = "Lua.ScriptImplicitAttribute";

		// Token: 0x04000083 RID: 131
		public static string ReplaceScriptAttribute = "Lua.ReplaceScriptAttribute";

		// Token: 0x04000084 RID: 132
		public static string static_initialize_func = "_static_initialize_";

		// Token: 0x04000085 RID: 133
		public static HashSet<string> protoAttribute = new HashSet<string>
		{
			"ProtoBuf.ProtoContractAttribute"
		};

		// Token: 0x04000086 RID: 134
		public static List<Type> externalEnumTypes = new List<Type>();

		// Token: 0x04000087 RID: 135
		public static bool commontMethodVar = false;

		// Token: 0x0400008A RID: 138
		public static Dictionary<string, string> rebindType = new Dictionary<string, string>
		{
			{
				"System.Collections.Generic.Dictionary",
				"CSLDictionary"
			},
			{
				"System.Collections.Generic.Dictionary.KeyCollection",
				"CSLDictionary.KeyCollection"
			},
			{
				"System.Collections.Generic.Dictionary.ValueCollection",
				"CSLDictionary.ValueCollection"
			},
			{
				"System.Collections.Generic.Dictionary.KeyCollection.Enumerator",
				"CSLDictionary.KeyCollection.Enumerator"
			},
			{
				"System.Collections.Generic.Dictionary.ValueCollection.Enumerator",
				"CSLDictionary.ValueCollection.Enumerator"
			},
			{
				"System.Collections.Generic.List",
				"CSLList"
			},
			{
				"System.String",
				"CSLString"
			},
			{
				"System.Type",
				"CSLType"
			},
			{
				"System.Activator",
				"CSLActivator"
			},
			{
				"System.Math",
				"CSLMath"
			},
			{
				"System.Linq.Enumerable",
				"CSLEnumerable"
			}
		};

		// Token: 0x0400008B RID: 139
		public static Dictionary<string, HashSet<string>> rebindImplements = new Dictionary<string, HashSet<string>>
		{
			{
				"CSLDictionary",
				new HashSet<string>
				{
					"set_Item",
					"get_Item",
					"get",
					"ContainsKey",
					"Add",
					"get_Keys",
					"get_Values",
					"Remove",
					"get_Count",
					"Clear"
				}
			},
			{
				"CSLDictionary.Keys",
				new HashSet<string>
				{
					"GetEnumerator"
				}
			},
			{
				"CSLDictionary.Values",
				new HashSet<string>
				{
					"GetEnumerator"
				}
			},
			{
				"CSLList",
				new HashSet<string>
				{
					"get_Count",
					"set_Item",
					"get_Item",
					"ToArray",
					"GetEnumerator",
					"IndexOf",
					"Contains",
					"Any",
					"AddRange",
					"Add",
					"Insert",
					"RemoveAt",
					"Remove",
					"Clear",
					"Sort",
					"Reverse"
				}
			},
			{
				"CSLString",
				new HashSet<string>
				{
					"Concat",
					"IndexOf",
					"get_Length",
					"IsNullOrEmpty",
					"Split",
					"Trim"
				}
			},
			{
				"CSLMath",
				new HashSet<string>
				{
					"Abs",
					"Max",
					"Min",
					"Round"
				}
			},
			{
				"CSLEnumerable",
				new HashSet<string>
				{
					"Any",
					"First",
					"FirstOrDefault"
				}
			},
			{
				"CSLType",
				new HashSet<string>
				{
					"GetTypeFromHandle",
					"get_FullName"
				}
			},
			{
				"CSLActivator",
				new HashSet<string>
				{
					"CreateInstance"
				}
			}
		};

		// Token: 0x0400008C RID: 140
		public static List<BindTypeConfig> bindingTypes = new List<BindTypeConfig>();

		// Token: 0x0400008D RID: 141
		public static string moveFolder;
	}
}
